Challenge #5: HR Position Finder Application ~HRポジションの検索アプリを作る~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
Alteryx CommunityのWeekly Challengeで提供されているお題には、難易度のほかにカテゴリが設定されています。今回はAppsに分類されているお題に挑戦します。
Challenge #5: HR Position Finder Application
お題
今回挑戦するお題はこちらです。
「Input」側には以下のデータが用意されています。
「Output」側のデータは以下の通りです。「Position Number」列に「33333」とあり、「Level0」から「Level3」列のどこかに「33333」があるレコードのみ出力されています。
「Output」側のデータの横にSample Interfaceという画像が付属しています。こちらを参照すると、「33333」以外にも「12222」などのポジションが一覧で表示されています。
今回のお題は「Output」側のデータを出力するだけではなく、Analytic Appを作成して任意のポジションを選択して出力できるようにする必要があります。
解答の概要
今回作成するワークフローは以下の通りです。
- Transposeツールでデータを縦持ちに変換
- Selectツールで列の削除と名前の変更
- Uniqueツールでユニークなレコードを抽出
- FilterツールでNullを除外
- Append Fieldツールでデータの結合
- FilterツールでPosition Numberと合致しないレコードを除外
- Filterツールで検索するポジションを抽出
- Drop Downツールで検索するポジションを選択
- Actionツールで検索するポジションを更新 - Output Dataツールで検索結果を出力
解答の詳細
まずはポジションを全て抽出します。Transform -> Transposeを使用して一列に並べます。
縦持ちに変換したデータには「Name」列と「Value」列があります。「Name」列には「Level0」などが出力されていますがこの列は使用しませんので、Preparation -> Selectを使用して不要な列を削除します。また「Value」列を「Position Number」に名前を変更します。
「Position Number」列にはいくつかポジションが存在しています。ポジションの一覧を作成するため、Preparation -> Uniqueを使用してユニークなポジションのみ抽出します。
データにNullが残っていますので、Preparation -> Filter を使用してNullを除外します。
これでポジションの一覧を作成できました。
Join -> Append Fieldを使用して、元のデータとポジションの一覧を結合します。
Append Fieldで結合したデータは、各ポジションに対して元のデータが全て結合している状態になっています。Filterツールを使用して、「Position Number」のポジションが「Level0」から「Level3」のポジションのどれかに一致するレコードのみ抽出します。
続いてFilterツールを使用して、選択したポジションを抽出するように設定します。Filterツールでは、「Position Number」が「11111」だったものを抽出するように設定しています。この「11111」の部分を、Interface -> Drop DownとInterface -> Actionを使用して、ユーザーが選択したポジションで上書きされるように設定します。
Drop Downツールでは、List Values に Manually set values (Name:Value - one per line) を選択します。Properties に直接入力してドロップダウンの一覧を作成できます。「FilterツールでNullを除外」で作成したポジションの一覧をコピーして入力します。
Actionツールでは、Update VAlue (Default) を選択し、値を更新する箇所「11111」として Operand - value="11111" を選択します。
出力結果の確認のため、In/Out -> Output Dataを使用してファイルに出力します。
これでAnalytic Appを作成できました。保存したファイルは拡張子が.yxwzになっています。
保存したファイルをダブルクリックすると、ポジションの選択する画面が表示されます。
「33333」を選択して Finish をクリックすると、検索結果がファイルに出力されます。ファイルの中身を確認すると、「Output」側と同じデータになっていることが確認できました。
最後に
今回はAnalytic Appを作成するお題に挑戦しました。これまでAnalytic Appに触れることが少なかったので、Analytic Appに触れるいい機会になりました。これからもWeekly Challengeに挑戦して知識を深めていきたいと思います。